Two computing trends continue in parallel. First, the amount of data being stored by computing systems of all kinds continues to grow consistent with advances in storage and processing power, and second, the amount of data shared and concomitant traffic over networks according to a variety of network topologies for connecting different devices is increasing rapidly as well. The two trends together have aided a macro trend of relieving devices that consume data from having to store such data on the consuming device, since they can retrieve the data according to a variety of networking topologies, dynamically, and as needed.
In consideration of these trends further, various large-scale server architectures have developed that enable the consumption of vast amounts of data as needed by the consuming devices from large server farms. For instance, as shown in FIG. 1, data server farms 100 and the like have developed to house massive amounts of data illustrated for conceptual ease as giant storage unit 104. Oftentimes, such data will be multidimensional data, such as 3-D graphical representations of an object, 4-D representations of graphical objects with time as a fourth dimension. The basic idea is that any number of dimensions of data can be stored in storage 104, whether it be graphical data, data cubes, data relating to health care, video, audio, large scale database storage, etc.
Usually, a small subset of the total data is of interest to consuming clients 110 for any given client experience. Moreover, at any given time during any given client experience, it is likely that only a smaller still subset of the small subset of the total data is needed by the consuming client 110. Moreover, due to the limited storage 114 of consuming clients 110, it is not practical to download all of multidimensional data storage 104.
Addressing this delivery need, conventionally, clients 110 have sent a request to data servers 100 as shown by request 120. The server then computes the subset of data 122 from the multidimensional data storage 104 and sends the computed subset of data to the consuming client 110 at 124, whereby the client 110 can render the subset of data at 126, or take any other appropriate action on the requested subset of data. The conventional delivery model can work well for single static image delivered to the consuming client 110 since the one time request does not implicate a lot of inefficiency. For instance, where the client 110 requests a single 2-D image to be constructed from data collected over N different parameters for a period of 10 years at a given geological site stored in storage 104, generally, it makes sense for data servers 100 to compute the needed subset of data and send it to the client 110 as part of the onetime request.
However, where a client 110 has a more complex interaction with the multidimensional data storage 104, such as streaming of images sequenced according to some order specified by the client 110, this conventional model of FIG. 1 can break down because the delay between step 120 and step 126 can become unacceptable to the consuming client 110. This can be either because the amount of data exceeds available transmission bandwidth or because the time to compute the subset of data 122 is unacceptably high. As an example, this might be the case where a video, i.e., a pre-set series of 2-D images, must be delivered to the client 110 according to time sensitive requirements that cannot be met by the existing bandwidth or the networked application handling the requests. While compression can meet some of the needs of transmission where the sequence of images is known in advance, if the client 110 does not have means to decode the compression scheme, the solution works with a limited number of clients 110. Thus, improved ways to efficiently deliver subsets of data from large multidimensional data stores to consuming clients are desired.
The above-described deficiencies of today's server models for processing and delivering multidimensional data on behalf of consuming clients are merely intended to provide an overview of some of the problems of conventional systems, and are not intended to be exhaustive. Other problems with conventional systems and corresponding benefits of the various non-limiting embodiments described herein may become further apparent upon review of the following description.